<!DOCTYPE html>
<html>
<head>
    <title>商品详情</title>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <!-- jquery -->
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <!-- bootstrap -->
    <link rel="stylesheet" type="text/css" href="/bootstrap/css/bootstrap.min.css"/>
    <script type="text/javascript" src="/bootstrap/js/bootstrap.min.js"></script>
    <!-- jquery-validator -->
    <script type="text/javascript" src="/jquery-validation/jquery.validate.min.js"></script>
    <script type="text/javascript" src="/jquery-validation/localization/messages_zh.min.js"></script>
    <!-- layer -->
    <script type="text/javascript" src="/layer/layer.js"></script>
    <!-- md5.js -->
    <script type="text/javascript" src="/js/md5.min.js"></script>
    <!-- common.js -->
    <script type="text/javascript" src="/js/common.js"></script>

</head>
<body>


<div class="panel panel-default">
    <div class="panel-heading">秒杀商品详情</div>
    <div class="panel-body">
        <!--如果user为空，则表明没有登录-->
        <span id="userTip"> 您还没有登录，请登陆后再操作<br/></span>
        <span>没有收货地址的提示……</span>
    </div>
    <table class="table" id="goodslist">
        <tr>
            <td>商品名称</td>
            <td colspan="3" id="goodsName"></td>
        </tr>
        <tr>
            <td>商品图片</td>
            <td colspan="3"><img id="goodsImg" width="200" height="200"/></td>
        </tr>
        <tr>
            <td>秒杀开始时间</td>
            <!--格式转换-->
            <td id="startTime"></td>
            <!--秒杀状态-->
            <td>
                <input type="hidden" id="remainSeconds"/>
                <span id="seckillTip"></span>
            </td>
            <td>
                <!--<form id="seckillForm" method="post" action="/seckill/doSeckill">
                    <input type="hidden" name="goodsId" id="goodsId"/>
                    <button class="btn btn-primary btn-block" type="submit" id="buyButton">立即秒杀</button>
                </form>-->
                <!--页面静态化-->
                <!--<button onclick="doSeckill()" class="btn btn-primary btn-block" type="button" id="buyButton">立即秒杀</button>-->
                <!--<input type="hidden" name="goodsId" id="goodsId"/>-->
                <div>
                    <!--添加验证码-->
                    <img id="captchaImg" width="80" height="30" style="display:none" onclick="refreshCaptcha()">
                    <input id="captchaInput" style="display: none"/>
                    <!--接口掩藏-->
                    <button onclick="getSeckillPath()" class="btn btn-primary btn-block" type="button" id="buyButton">
                        立即秒杀
                        <input type="hidden" name="goodsId" id="goodsId"/>
                    </button>
                </div>
            </td>
        </tr>
        <tr>
            <td>商品原价</td>
            <td colspan="3" id="goodsPrice"></td>
        </tr>
        <tr>
            <td>秒杀价</td>
            <td colspan="3" id="seckillPrice"></td>
        </tr>
        <tr>
            <td>库存数量</td>
            <td colspan="3" id="stockCount"></td>
        </tr>
    </table>
</div>

</body>

<script>
    $(function () {
        getDetails();
        // countDown();
    })

    /*
        请求商品详细信息
     */
    function getDetails() {
        var goodsId = g_getQueryString("goodsId");
        $.ajax({
            url: "/goods/toDetail2/" + goodsId,
            type: "GET",
            success: function (data) {
                console.log(data)
                if (data.code == 200) {
                    render(data.obj);
                } else {
                    layer.msg(data.message)
                }
            },
            error: function (data) {
                layer.msg("客户端请求错误")
            }
        })
    }


    /*
        渲染数据
     */
    function render(data) {
        var user = data.user;
        var goods = data.goodsVo;
        var seckillStatus = data.seckillStatus;
        var remainSeconds = data.remainSeconds;

        if (user) {
            $("#userTip").hide();
        }
        $("#goodsName").text(goods.goodsName);
        $("#goodsImg").attr("src", goods.goodsImg);
        $("#startTime").text(new Date(goods.startDate).format("yyyy-MM-dd hh:mm:ss"));
        $("#remainSeconds").val(remainSeconds)
        $("#goodsId").val(goods.id);
        $("#goodsPrice").text(goods.goodsPrice);
        $("#seckillPrice").text(goods.seckillPrice);
        $("#stockCount").text(goods.stockCount)
        countDown();
    }

    /*
        倒计时
     */
    function countDown() {
        var remainSeconds = $("#remainSeconds").val();
        var timeout;
        if (remainSeconds > 0) {//秒杀还没开始，倒计时
            $("#buyButton").attr("disabled", true);// 秒杀按钮不可用
            $("#seckillTip").html("秒杀倒计时：" + remainSeconds + "秒")
            timeout = setTimeout(function () {
                // $("#countDown").text(remainSeconds - 1);// 设置剩余时间文本
                $("#remainSeconds").val(remainSeconds - 1);// 更新剩余时间变量
                countDown();
            }, 1000);// 每秒更新一次

        } else if (remainSeconds == 0) {//秒杀进行中
            $("#buyButton").attr("disabled", false);// 秒杀按钮可用
            if (timeout) {// 清除倒计时
                clearTimeout(timeout);
            }
            refreshCaptcha()
            $("#captchaImg").show();
            $("#captchaInput").show();
            $("#seckillTip").html("秒杀进行中");// 更新文本

        } else {//秒杀已经结束(remainSeconds = -1)
            $("#buyButton").attr("disabled", true);
            $("#seckillTip").html("秒杀已经结束");
            $("#captchaImg").hide();
            $("#captchaInput").hide();
        }
    }

    function refreshCaptcha() {
        $("#captchaImg").attr("src", "/seckill/captcha?goodsId=" + $("#goodsId").val() + "&time=" + new Date())
    }

    function getSeckillPath() {
        var goodsId = $("#goodsId").val();
        var captcha = $("#captchaInput").val();
        g_showLoading();
        $.ajax({
            url: "/seckill/path",
            type: "GET",
            data: {
                goodsId: goodsId,
                captcha: captcha
            },
            success: function (data) {
                if (data.code == 200) {
                    var path = data.obj;
                    console.log(path)
                    doSeckill(path);
                } else {
                    layer.msg(data.message)
                }
            },
            error: function () {
                layer.msg("客户端请求错误")
            }
        })
    }

    /*
       秒杀
    */
    function doSeckill(path) {
        $.ajax({
            url: "/seckill/" + path + "/doSeckill4",
            //url: "/seckill/doSeckill3",
            type: "POST",
            data: {
                goodsId: $("#goodsId").val()
            },
            success: function (data) {
                if (data.code == 200) {
                    //页面静态化优化
                    //window.location.href = "orderDetail.htm?orderId=" + data.obj.id;

                    //mq优化
                    getResult($("#goodsId").val());
                } else {
                    layer.msg(data.message)
                }
            },
            error: function (data) {
                layer.msg("客户端请求错误")
            }
        })
    }

    /*
        获取秒杀结果
    */
    function getResult(goodsId) {
        g_showLoading();
        $.ajax({
            url: "/seckill/result",
            type: "GET",
            data: {
                goodsId: goodsId
            },
            success: function (data) {
                if (data.code == 200) {
                    var result = data.obj;
                    if (result > 0) {
                        layer.confirm("恭喜你，秒杀成功！查看订单？", {btn: ["确定", "取消"]},
                            function () {
                                window.location.href = "/orderDetail.htm?orderId=" + result;
                            }),
                            function () {
                                layer.close();
                            }
                    } else if (result == 0) {
                        // 排队中
                        setTimeout(function () {
                            getResult(goodsId);
                        }, 1000)
                    } else {
                        layer.msg("对不起，秒杀失败！");
                    }
                } else {
                    layer.msg(data.message)
                }
            },
            error: function (data) {
                layer.msg("客户端请求错误")
            }
        })
    }


</script>


</html>
